package com.luanhj.common.core.domain.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.luanhj.common.core.domain.BaseEntity;
import org.springframework.data.annotation.Id;

import java.util.Date;

/**
 * @author luanhj
 * @date 2025/6/3 10:59
 * @description
 **/

public class Tenant  {
    @Id
    private String id;

    private String name;
    private String contactEmail;

    private String contactPhone;

    /**
     * 状态（status）‌：表示租户的状态，如激活1、暂停2、删除-1等。
     */
    private Integer status;
    /**
     * 创建租户时分配的初始管理员用户ID
     */
    private Long initialAdminId;
    // @TableField(exist = false)
    // private String initialAdminName;

    /**
     * 表示租户的类型，如0个人版、1企业版等。
     */
    private String type;
    /**
     * 租户订阅计划的到期时间。
     */
    private Date expirationDate;
    /** 创建者 */
    private String createBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 更新者 */
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /** 备注 */
    private String remark;

    public Long getInitialAdminId() {
        return initialAdminId;
    }

    public void setInitialAdminId(Long initialAdminId) {
        this.initialAdminId = initialAdminId;
    }

    public Date getExpirationDate() {
        return expirationDate;
    }

    public void setExpirationDate(Date expirationDate) {
        this.expirationDate = expirationDate;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getContactEmail() {
        return contactEmail;
    }

    public void setContactEmail(String contactEmail) {
        this.contactEmail = contactEmail;
    }

    public String getContactPhone() {
        return contactPhone;
    }

    public void setContactPhone(String contactPhone) {
        this.contactPhone = contactPhone;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }



    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public Date getExpiration_date() {
        return expirationDate;
    }

    public void setExpiration_date(Date expiration_date) {
        this.expirationDate = expiration_date;
    }

    @Override
    public String toString() {
        return "Tenant{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", contactEmail='" + contactEmail + '\'' +
                ", contactPhone='" + contactPhone + '\'' +
                ", status=" + status +
                ", initialAdminId=" + initialAdminId +
                ", type=" + type +
                ", expirationDate=" + expirationDate +
                ", createBy='" + createBy + '\'' +
                ", createTime=" + createTime +
                ", updateBy='" + updateBy + '\'' +
                ", updateTime=" + updateTime +
                ", remark='" + remark + '\'' +
                '}';
    }
}
